/**
 * 压缩:xml(无style|script)  非语法解析
 * @param code string 代码
 * @param ign array|null 忽略片段的正则
 * 		内部忽略: <pre/>标签内容
 * @return string
 */
$.astMinXml = function(code, ign=null){
	let EN='<___$_astMinXml___:'; code=code.replace(/<!--(.|\n)*?-->/g,'');
	let tmp={}, idx=0, re=m=>{ tmp[idx]=m; return EN+(idx++)+'$>'; };
	code = code.replace(/<pre(.|\n)*?>(.|\n)*?<\/pre\s*>/gi, re);
	if(ign) for(let i=0; i<ign.length; i++) code=code.replace(ign[i], re);
	code = code.replace(/\r?\n+/g,' ').replace(/(^\s*)|(\s*$)/g,'')
		.replace(/\s+</g,' <').replace(/>\s+/g,'> ').replace(/\s+>/g,'>');
	for(let i=0; i<idx; i++) code = code.replace(EN+i+'$>', tmp[i]);
	return code;
};
